package com.sltx.service.impl;

import com.sltx.dao.aaa.QyqjMapper;
import com.sltx.service.QyqjService;
import com.sltx.util.PageData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Service
public class QyqjServiceImpl implements QyqjService {
    @Autowired
    private QyqjMapper qyqjMapper;


    @Override
    public List<Object> getXxpp(PageData pd) {
        List<Object> result = new ArrayList<>();
        String org_name = pd.get("org_name").toString();
        String newName = org_name.replace("", "%");
        pd.put("org_name", newName);
        result = qyqjMapper.getXxpp(pd);
        return  result;
    }



    @Override
    public List<Object> getByKeyword(PageData pd, String key){
        List<Object> result = new ArrayList<>();
        List<Object> temp;
        String type = pd.get("type").toString();
        String newkey = key.replace("", "%");
        pd.put("key", key);
        pd.put("org_name",newkey);
        pd.put("org_address",newkey);
        if (Integer.valueOf(type) == 4){
            temp = qyqjMapper.getByKeyword(pd);
            for (int i = 0; i< temp.size(); i++){
                if (temp.get(i)== null){
                    temp.set(i, "");
                }
            }
            result.add(temp);
            result.add(qyqjMapper.getByKeywordNum(pd));
        } else if (Integer.valueOf(type) == 0){
            temp = qyqjMapper.getByName(pd);
            for (int i = 0; i< temp.size(); i++){
                if (temp.get(i)== null){
                    temp.set(i, "");
                }
            }
            result.add(temp);
            result.add(qyqjMapper.getByNameNum(pd));
        } else if (Integer.valueOf(type) == 2){
            temp = qyqjMapper.getByAddress(pd);
            for (int i = 0; i< temp.size(); i++){
                if (temp.get(i)== null){
                    temp.set(i, "");
                }
            }
            result.add(temp);
            result.add(qyqjMapper.getByAddressNum(pd));
        }
        return result;
    }

/*******************************基本信息********************************************************************************/
    /**
     * 企业基本信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getEntList(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getEntList(pd);
        return result;
    }

    /**
     * 股东及出资信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getShareholder(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getShareholder(pd);
        return result;
    }

    /**
     * 企业董高监信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getDirector(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getDirector(pd);
        return result;
    }

/***********************************储备项目明细*************************************************************************/
    /**
     * 储备项目明细
     */
    @Override
    public List<Map> getReservePrj(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getReservePrj(pd);
        return result;
    }

/************************************纳税信息***************************************************************************/

    /**
     * 企业纳税信息
     */
    @Override
    public List<Map> getEntPayTax(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getEntPayTax(pd);
        return result;
    }

    /**
     * 企业税务信息表
     * @param pd
     * @return
     */
    @Override
    public List<Map> getTaxation(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getTaxation(pd);
        return result;
    }

/**********************************社保缴纳*****************************************************************************/
    /**
     * 社保缴纳
     * @param pd
     * @return
     */
    @Override
    public List<Map> getSocialSec(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getSocialSec(pd);
        return result;
    }

/********************************行政处罚*******************************************************************************/
    /**
     * 行政处罚
     * @param pd
     * @return
     */
    @Override
    public List<Map> getEntAdmin(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getEntAdmin(pd);
        return result;
    }

/**********************************疫苗接种*****************************************************************************/
    /**
     * 疫苗接种
     * @param pd
     * @return
     */
    @Override
    public List<Map> getVaccination(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getVaccination(pd);
        return result;
    }

/***********************************工商迁入迁出记录**********************************************************************/
    /**
     * 税务迁入记录
     * @param pd
     * @return
     */
    @Override
    public List<Map> getTaxMoveImp(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getTaxMoveImp(pd);
        return result;
    }

    /**
     * 税务迁出记录
     * @param pd
     * @return
     */
    @Override
    public List<Map> getTaxMoveExp(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getTaxMoveExp(pd);
        return result;
    }

/************************************政策兑现***************************************************************************/
    /**
     * 政策兑现
     * @param pd
     * @return
     */
    @Override
    public List<Map> getPolicyToCash(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getPolicyToCash(pd);
        return result;
    }

    /**
     * 人才引进落户
     * @param pd
     * @return
     */
    @Override
    public List<Map> getTalentIntroduce(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getTalentIntroduce(pd);
        return result;
    }

    /**
     * 工作居住证
     * @param pd
     * @return
     */
    @Override
    public List<Map> getWorkResidencePermit(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getWorkResidencePermit(pd);
        return result;
    }

    /**
     * 重点企业员工子女入园入学
     * @param pd
     * @return
     */
    @Override
    public List<Map> getKeynetChild(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getKeynetChild(pd);
        return result;
    }

    /**
     * 公租房
     * @param pd
     * @return
     */
    @Override
    public List<Map> getPubHouse(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getPubHouse(pd);
        return result;
    }

    /**
     * 户口指标分配
     * @param pd
     * @return
     */
    @Override
    public List<Map> getCensusRegister(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getCensusRegister(pd);
        return result;
    }

    /**
     * 非京籍应届生落户
     * @param pd
     * @return
     */
    @Override
    public List<Map> getNopeking(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getNopeking(pd);
        return result;
    }

    /**
     * 房租补贴
     * @param pd
     * @return
     */
    @Override
    public List<Map> getHouseRent(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getHouseRent(pd);
        return result;
    }

    /**
     * 留学生引进落户
     * @param pd
     * @return
     */
    @Override
    public List<Map> getOverseaStdu(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getOverseaStdu(pd);
        return result;
    }

    /**
     * 景贤人才
     * @param pd
     * @return
     */
    @Override
    public List<Map> getExcellent(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getExcellent(pd);
        return result;
    }

/**********************************雷达图****************************************************************************/

    @Override
    public List<Object> getRadarMap(PageData pd){
        List<Object> result = new ArrayList<Object>();
        Map<String, Object> reg = qyqjMapper.getReg(pd);
        if (reg == null){
            Integer reg_capital = 0;
            result.add(reg_capital);
        }else {
            Double reg_capital = Double.parseDouble(reg.get("reg_capital").toString());
            if ("美元".equals(reg.get("currency_type"))){
                reg_capital =  reg_capital * 6.5;
            }

            result.add(reg_capital);
        }

        Map<String, Object> tax = qyqjMapper.getTax(pd);
        if (tax == null){
            int tax_cash = 0;
            int county_value = 0;
            result.add(tax_cash);
            result.add(county_value);
        }else {
            if (tax.get("tax_cash") == null) {
                int tax_cash = 0;
                result.add(tax_cash);
            } else {
                Double d = (Double) tax.get("tax_cash");
//                String tax_cash = TypeChange.formatFloatNumber(d);
                result.add(d);
            }

            if (tax.get("county_value") == null) {
                int county_value = 0;
                result.add(county_value);
            } else {
                Double d = (Double) tax.get("county_value");
//              String county_value = TypeChange.formatFloatNumber(d);
                result.add(d);
            }
        }

        Map<String, Object> social = qyqjMapper.getSocial(pd);
        if (social == null){
            int old_person_num = 0;
            result.add(old_person_num);
            int old_total_sum = 0;
            result.add(old_total_sum);
        }else{
            if (social.get("old_person_num") == null){
                int old_person_num = 0;
                result.add(old_person_num);
            }else {
                Integer old_person_num = Integer.parseInt(social.get("old_person_num").toString());

                result.add(old_person_num);
            }

            if (social.get("old_total_sum") == null){
                int old_total_sum = 0;
                result.add(old_total_sum);
            }else {
                Double d = (Double) social.get("old_total_sum") ;

                result.add(d);
            }
        }
        return result;

        }

/*************************************对外投资**************************************************************************/
    /**
     * 企业对外投资
     * @param pd
     * @return
     */
    @Override
    public List<Map> getExternal(PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getExternal(pd);
        return result;
    }

    /**
     * 分支机构
     * @param pd
     * @return
     */
    @Override
    public List<Map> getBranch (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getBranch(pd);
        return result;
    }

/**************************************企业年报*************************************************************************/
    /**
     * 年报企业基本信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getAnnals (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getAnnals(pd);
        return result;
    }

    /**
     * 年报股东及出资信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getShareholderYear(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getShareholderYear(pd);
        return result;
    }

    /**
     * 年报对外投资信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getExternalYear(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getExternalYear(pd);
        return result;
    }

    /**
     * 年报企业财务状况
     * @param pd
     * @return
     */
    @Override
    public List<Map> getFinance(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getFinance(pd);
        return result;
    }

    /**
     * 年报社保信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getSecurity(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getSecurity(pd);
        return result;
    }

    /**
     * 年报对外担保信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getGuarantee(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getGuarantee(pd);
        return result;
    }

    /**
     * 年报股权变更信息
     * @param pd
     * @return
     */
    @Override
    public List<Map> getEquity(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getEquity(pd);
        return result;
    }

/*************************************企业资质**************************************************************************/
    /**
     * 企业资质
     * @param pd
     * @return
     */
    @Override
    public List<Map> getAptitudes (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getAptitudes(pd);
        return result;
    }

/*************************************知识产权**************************************************************************/
    /**
     * 专利申请
     * @param pd
     * @return
     */
    @Override
    public List<Map> getPatent (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getPatent(pd);
        return result;
    }
    /**
     * 软件著作权
     * @param pd
     * @return
     */
    @Override
    public List<Map> getSoftware(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getSoftware(pd);
        return result;
    }
    /**
     * 作品著作权
     * @param pd
     * @return
     */
    @Override
    public List<Map> getWorks(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getWorks(pd);
        return result;
    }
    /**
     * 商标注册
     * @param pd
     * @return
     */
    @Override
    public List<Map> getTrademark(PageData pd) {
        List<Map> result = new ArrayList();
        result = qyqjMapper.getTrademark(pd);
        return result;
    }


/**************************************违法警示*************************************************************************/
    /**
     * 裁判文书
     * @param pd
     * @return
     */
    @Override
    public List<Map> getReferee (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getReferee(pd);
        return result;
    }
    /**
     * 法院执行
     * @param pd
     * @return
     */
    @Override
    public List<Map> getCourt (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getCourt(pd);
        return result;
    }

/*************************************交易项目**************************************************************************/
    /**
     * 交易项目
     * @param pd
     * @return
     */
    @Override
    public List<Map> getDeal (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getTender(pd);
        return result;
    }

/**************************************工商变更*************************************************************************/
    /**
     * 工商变更
     * @param pd
     * @return
     */
    @Override
    public List<Map> getIndustrial (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getAlteration(pd);
        return result;
    }

/**************************************企业分析*************************************************************************/
    /**
     * 潜力企业
     * @param pd
     * @return
     */
    @Override
    public List<Map> getQlqy (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getQlqy(pd);
        return result;
    }

    /**
     * 创新企业
     * @param pd
     * @return
     */
    @Override
    public List<Map> getCxqy (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getCxqy(pd);
        return result;
    }




    @Override
    public List<Map> getLeiDaTu (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getLeiDaTu(pd);
        return result;
    }




    @Override
    public List<Map> getGsbg (PageData pd){
        List<Map> result = new ArrayList();
        result = qyqjMapper.getGsbg(pd);
        return result;
    }


}
